package com.koi.pojo.system;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * @author ･ᴗ･
 * @description [系统访问记录模型]
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_login_log")
public class SysLoginLog implements Serializable {

    /**
     * 访问ID
     */
    @TableId(value = "login_id", type = IdType.ASSIGN_ID)
    private Long loginId;

    /**
     * 登录账号
     */
    @NotBlank(message = "登录账号不能为空")
    @TableField("login_name")
    private String loginName;

    /**
     * 登录设备（PC、手机、平板）
     */
    @NotBlank(message = "登录设备不能为空")
    @TableField("device_name")
    private String deviceName;

    /**
     * 登录IP地址
     */
    @TableField("ip_address")
    private String ipAddress;

    /**
     * 登录地址
     */
    @TableField("login_address")
    private String loginAddress;

    /**
     * 浏览器类型
     */
    @TableField("browser")
    private String browser;

    /**
     * 操作系统
     */
    @TableField("os")
    private String os;

    /**
     * 登录状态[0-成功 1-失败]
     */
    @TableField("login_status")
    private String loginStatus;

    /**
     * 提示消息
     */
    @TableField("message")
    private String message;

    /**
     * 访问时间
     */
    @TableField("login_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date loginTime;
}
